package com.chentf.dynamic;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

/**
 * @author chentengfei
 * @desc ...
 * @date 2021-01-17 14:23:13
 */
public class Arround implements MethodInterceptor {
    /*
        invoke方法的作用: 额外功能书写在invoke
                         额外功能可以写在原始方法之前之后,或者前后都可以
        确定: 原始方法怎么运行
            Object proceed = methodInvocation.proceed();
        参数: methodInvocation(类似MethodBeforeAdvice中的method): 额外功能所增加给的那个原始方法
            比如:UserServiceImpl中的login,register方法
            methodInvocation.proceed() == login()方法运行,register()方法运行
        返回值: Object: 原始方法的返回值
     */
    @Override
    public Object invoke(MethodInvocation methodInvocation) throws Throwable {
        System.out.println("----log----");
        Object proceed = methodInvocation.proceed();
        return false;
    }
}
